package com.xinzhi.service;


import com.baomidou.mybatisplus.extension.api.R;
import com.xinzhi.domain.dto.AddProductDto;
import com.xinzhi.domain.dto.QueryProductDto;
import com.xinzhi.domain.dto.UpdateProductDto;
import com.xinzhi.utils.Result;

public interface ProductService {
    Result getAllProduct();

    /**
     * 获取商品详情
     * @param id  商品id
     * @return
     */
    Result getProductDetail(String id);


    /**
     * 根据商品二级类目获取商品
     * @param twoTypeId  商品二级类目 id
     * @param current    当前页
     * @return
     */
    Result getProductByTwoType(String twoTypeId,String current);

    /**
     * 根据一级分类返回六条商品信息
     * @param oneTypeId
     * @return
     */
    Result getProductByOneType(String oneTypeId);


    /**
     * 取出销量最好的 20 个商品的简介信息
     * @return
     */
    Result getProductBySalesVolumeTop();


    /**
     * 添加商品
     * @param addProductDto         添加商品的请求参数
     * @return
     */
    Result addProduct(AddProductDto addProductDto);

    /**
     * 商品管理
     * @param current           页数
     * @return
     */
    Result productManage(String current);

    /**
     * 商品详情
     * @param id
     * @return
     */
    Result productDetail(String id);

    /**
     * 修改商品
     * @param updateProductDto
     * @return
     */
    Result updateProduct(UpdateProductDto updateProductDto);


    /**
     * 查询商品
     * @param queryProductDto
     * @return
     */
    Result queryProduct(QueryProductDto queryProductDto);

    /**
     * 根据 商品 id 删除商品
     * @param id   商品 id
     * @return
     */
    Result delProduct(String id);

    /**
     * 上架/下架商品
     * @param id                 需要上架或下架的商品 id
     * @param putAwayStatus      上架状态标志   1、 上架  0、 下架
     * @return
     */
    Result putAwayOrOutOfProduct(String id,String putAwayStatus);
}
